/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fisica;

import hibernate.Sesion;
import hibernate.objeto.Cie9mc;
import java.util.Vector;
import org.hibernate.Query;
import presentacion.utilidad.Paginador;

/**
 *
 * @author Gonzalo
 */
public class Cie9mcFisica extends CapaFisica {

    /**
     * Retorna el objeto Cie9mc según el código de la enfermedad.
     *
     * @param codigo El código de la enfermedad
     * @return El objeto Cie9mc consultado, null si no existe
     */
    public static Cie9mc getCie9mcPorCodigo(String codigo) {
        Query q = Sesion.sesion.createQuery(
                "from Cie9mc "
                + "where lower(codigoCie9mc) = lower('" + codigo + "')"
                );

        return (Cie9mc) getObjeto(q);
    }
    
    /**
     * Retorna el vector con los objetos Cie9mc según el código de la enfermedad.
     *
     * @param codigo El código de la enfermedad
     * @return El vector de objetos Cie9mc consultado, null si no existe
     */
    public static Vector<Cie9mc> getVectorCie9mcPorCodigoYEnBd(String codigo) {
        Query q = Sesion.sesion.createQuery(""
                + "from Cie9mc "
                + "where lower(codigoCie9mc) like lower('%" + codigo + "%') and "
                + "enBdCie9mc = true order by codigoCie9mc asc"
                );

        Paginador.paginar(q);

        return getVectorObjetos(q);
    }

    /**
     * Retorna el vector con los objetos Cie9mc según el nombre de la enfermedad.
     *
     * @param nombre El nombre de la enfermedad
     * @return El vector de objetos Cie9mc consultado, null si no existe
     */
    public static Vector<Cie9mc> getVectorCie9mcPorNombreYEnBd(String nombre) {
        Query q = Sesion.sesion.createQuery(""
                + "from Cie9mc "
                + "where lower(sinacentos(detalleCie9mc)) like "
                + "lower(sinacentos('%" + nombre + "%')) and "
                + "enBdCie9mc = true order by detalleCie9mc asc"
                );

        Paginador.paginar(q);

        return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto Cie9mc según el nombre de la enfermedad y el estado.
     *
     * @param nombreCie9mc El nombre de la enfermedad
     * @param estado false si es baja lógica, true si aún activo
     * @return El objeto Cie9mc consultado, null si no existe
     */
    public static Cie9mc getCie9mcPorNombreYPorEnBd(String nombreCie9mc,
            boolean estado) {
        Query q = Sesion.sesion.createQuery(
                "from Cie9mc "
                + "where lower(sinacentos(detalleCie9mc)) = "
                + "lower(sinacentos('" + nombreCie9mc + "')) and "
                + "enBdCie9mc = " + estado
                );

        return (Cie9mc) getObjeto(q);
    }

    /**
     * Retorna el vector de objetos Cie9mc que han sudo cargados por el usuario.
     *
     * @return El vector de objetos Cie9mc, null si no existe
     */
    public static Vector<Cie9mc> getVectorCie9mcAgregados() {
        Query q = Sesion.sesion.createQuery(""
                + "from Cie9mc "
                + "where lower(sinacentos(codigoCie9mc)) like "
                + "lower(sinacentos('%user%'))"
                );

        return getVectorObjetos(q);
    }

}
